package rpc.serialize;

/**
 * @ClassName: Serializer
 * @Description: 用于序列化和反序列化
 * @author: Kowk
 * @since:1.0.0
 */
public interface Serializer {

    /**
    * @Description:  序列化
    * @Param:  obj 需要进行序列化的对象
    * @return:  byte类型数组
    */
    byte[] serialize(Object object);

    /**
     * @Description: 反序列化
     * @Param: [bytes 序列化字节数组, clazz 序列化对应的类]
     * @return: T 反序列化的对象
     */
    <T> T deserialize(byte[] bytes, Class<T> clazz);


}
